/**
 * 获取指定长度的字符串
 * 返回的结果宽度不是准确一致的，请实际使用多留点余量
 * @param str 目标字符串
 * @param limit 长度限制 \w算1 其他算2
 * @returns xxx... 或者 xx
 */
export function getLimitText(str, limit) {
    if (str.length < Math.floor(limit / 2)) {
        return str
    }
    let res = ''
    let count = 0
    for(let i = 0; i < str.length; i++) {
        res += str[i]
        // 数字字母下划线 长度1
        if (/\w/.test(str[i])) {
            count++
        }
        // 其他如中文，长度算2
        else {
            count += 2
        }
        // 超过限制长度长度
        if (count >= limit) {
            // 不是最后一个字符，则拼...
            if (i < str.length - 1) {
                res += '...'
            }
            break
        }
    }
    return res
}